パノラマにコントローラーを付ける方法
【使用するファイル】
パノラマのxmlファイル
krpano Viewer内のbuttonsフォルダのファイル
krpano Viewer>examples>xml-usage>buttons
【準備】
コントローラーを配置したいパノラマのxmlファイルのある場所にbuttonsフォルダをコピーする。
【基本コード】パノラマのxmlファイル
以下のコードをxmlに追加
このコントローラーを使用する場合(buttons.jpg)
<include url="buttons/buttons-jpg-include.xml" />
このコントローラーを使用する場合(buttons.png)
<include url="buttons/buttons-png-include.xml" />
【メモ】
オリジナルのコントローラーを使用したい場合は上記のコントローラーをテンプレートにして
デザインを作成して、buttonsフォルダ内に保存して、ファイル名をbuttons.jpかbuttons.pngにする。
オリジナルのファイル名にする場合はボタン用画像をbuttonsフォルダ内に保存して
(buttons-jpg-include.xml)か (buttons-png-include.xml)のどちらか使用する方の
ファイルを開き、20行目あたりの以下の記述のファイル名部分を変更する。
<style name="button" keep="true" align="bottom" y="10" url="buttons.jpg" blendmode="screen" />
ボタンのサイズが同じであれば、他に変更する場所は無しblendmode=”screen”で黒背景を無くしている。
ブレンドモードの設定についてはここを参照
【オリジナルとはボタンサイズの異なるコントローラーを配置したい】
buttonsフォルダ内のbuttons-jpg-include.xmlまたはbuttons-png-include.xmlどちらか使用する方の
xmlファイルを開く。オリジナルのボタン用画像の名前はbuttons.jpgとして説明。
22〜33行目あたりに記載されている以下のコードを変更する。
<plugin name="in" style="button" x="-160" crop="160|0|40|40" onovercrop="160|40|40|40" ondowncrop="160|80|40|40" ondown="set(fov_moveforce,-1);" onup="set(fov_moveforce,0);" />
<plugin name="out" style="button" x="-120" crop="200|0|40|40" onovercrop="200|40|40|40" ondowncrop="200|80|40|40" ondown="set(fov_moveforce,+1);" onup="set(fov_moveforce,0);" />
<plugin name="left" style="button" x="-80" crop= "0|0|40|40" onovercrop= "0|40|40|40" ondowncrop= "0|80|40|40" ondown="set(hlookat_moveforce,-1);" onup="set(hlookat_moveforce,0);" />
<plugin name="right" style="button" x="-40" crop= "40|0|40|40" onovercrop= "40|40|40|40" ondowncrop= "40|80|40|40" ondown="set(hlookat_moveforce,+1);" onup="set(hlookat_moveforce,0);" />
<plugin name="up" style="button" x="+0" crop= "80|0|40|40" onovercrop= "80|40|40|40" ondowncrop= "80|80|40|40" ondown="set(vlookat_moveforce,-1);" onup="set(vlookat_moveforce,0);" />
<plugin name="down" style="button" x="+40" crop="120|0|40|40" onovercrop="120|40|40|40" ondowncrop="120|80|40|40" ondown="set(vlookat_moveforce,+1);" onup="set(vlookat_moveforce,0);" />
<plugin name="hotspots" style="button" x="+80" crop="240|0|40|40" onovercrop="240|40|40|40" ondowncrop="240|80|40|40" onhover="showtext(Toggle Hotspots, buttonstyle);" onclick="switch(hotspot.visible);" />
<plugin name="dragmode" style="button" x="+120" crop="400|0|40|40" onovercrop="400|40|40|40" ondowncrop="400|80|40|40" onhover="showtext(Change Controlmode, buttonstyle);" onclick="action(dragcursor);" visible="true" />
<plugin name="movemode" style="button" x="+120" crop="360|0|40|40" onovercrop="360|40|40|40" ondowncrop="360|80|40|40" onhover="showtext(Change Controlmode, buttonstyle);" onclick="action(qtvrcursor);" visible="false" />
<plugin name="openfs" style="button" x="+160" crop="280|0|40|40" onovercrop="280|40|40|40" ondowncrop="280|80|40|40" onhover="showtext(Fullscreen, buttonstyle);" onclick="set(fullscreen,true);" visible="true" />
<plugin name="closefs" style="button" x="+160" crop="320|0|40|40" onovercrop="320|40|40|40" ondowncrop="320|80|40|40" onhover="showtext(Exit Fullscreen,buttonstyle);" onclick="set(fullscreen,false);" visible="false" />
オリジナルのbuttons.jpg画像は40×40ピクセル単位で各ボタンが設定されているので設定は40がキーワード。
抜粋したコード
<plugin name="in" style="button" x="-160" crop="160|0|40|40" onovercrop="160|40|40|40" ondowncrop="160|80|40|40" ondown="set(fov_moveforce,-1);" onup="set(fov_moveforce,0);" /> <plugin name="out" style="button" x="-120" crop="200|0|40|40" onovercrop="200|40|40|40" ondowncrop="200|80|40|40" ondown="set(fov_moveforce,+1);" onup="set(fov_moveforce,0);" />
以下の設定を参考に、オリジナル画像のコントローラーボタンの大きさに合わせた設定をする。
■x=”"の設定 横並びボタンの位置の指定
upボタンを中心にして、upの左側のボタンはx=” “の数字が-40になり、さらに左のボタンは-80になる。
増える。逆にupから右のボタンはx=” “の数字が40になり、さらに右のボタンは80になる。
■crop=”"の設定 ボタン用の素材を全てのボタンを一枚の画像で作成しているので、
crop(トリミング)する必要があり、どの部分をcropするのかの指定をする
crop=”画像の右端からの距離|画像の上からの距離|切り取る幅|切り取る高さ”
crop=”160|0|40|40″ = 画像の右から160px上から0pxの位置から幅40px高さ40pxで切り抜き
■onovercrop=”"の設定 マウスを乗せた時の設定
オリジナル画像では中段の画像。ロールオーバーをさせなければ、設定しなくても良い。
■ondowncrop=”"の設定 マウスをクリックした状態の時の設定
オリジナル画像では下段の画像。ロールオーバーをさせなければ、設定しなくても良い。
【ボタンの種類】
オリジナルのコントローラーの種類は右から以下の通り
拡大(+)/縮小(-)/左回り(←)/右回り(→)/上向き(↑)/下向き(↓)/不明(★)/ポインタの切替(手)/フルスクリーン
■実際問題として不明な★マークとポインタの切替は不要だと思うので削除の方法
22〜33行目あたりに記載されている以下のコードの29〜30行目の以下の記述を削除
削除するコード
<plugin name="hotspots" style="button" x="+80" crop="240|0|40|40" onovercrop="240|40|40|40" ondowncrop="240|80|40|40" onhover="showtext(Toggle Hotspots, buttonstyle);" onclick="switch(hotspot.visible);" /> <plugin name="dragmode" style="button" x="+120" crop="400|0|40|40" onovercrop="400|40|40|40" ondowncrop="400|80|40|40" onhover="showtext(Change Controlmode, buttonstyle);" onclick="action(dragcursor);" visible="true" /> <plugin name="movemode" style="button" x="+120" crop="360|0|40|40" onovercrop="360|40|40|40" ondowncrop="360|80|40|40" onhover="showtext(Change Controlmode, buttonstyle);" onclick="action(qtvrcursor);" visible="false" />
ボタンの種類が9種類から7種類に減り歯抜けになる
ボタンの種類が減り、真ん中のボタンが『上向き』から『右回転』になるのでx=”"の設定を変更してボタンの位置を調整する。
name=”right”のボタンが右回転ボタンなのでx=”-40″をx=”0″にする。
左右のボタンのx=”"の設定もそれぞれ数字を変更する。
変更後のコード
<plugin name="in" style="button" x="-120" crop="160|0|40|40" onovercrop="160|40|40|40" ondowncrop="160|80|40|40" ondown="set(fov_moveforce,-1);" onup="set(fov_moveforce,0);" /> <plugin name="out" style="button" x="-80" crop="200|0|40|40" onovercrop="200|40|40|40" ondowncrop="200|80|40|40" ondown="set(fov_moveforce,+1);" onup="set(fov_moveforce,0);" /> <plugin name="left" style="button" x="-40" crop= "0|0|40|40" onovercrop= "0|40|40|40" ondowncrop= "0|80|40|40" ondown="set(hlookat_moveforce,-1);" onup="set(hlookat_moveforce,0);" /> <plugin name="right" style="button" x="0" crop= "40|0|40|40" onovercrop= "40|40|40|40" ondowncrop= "40|80|40|40" ondown="set(hlookat_moveforce,+1);" onup="set(hlookat_moveforce,0);" /> <plugin name="up" style="button" x="+40" crop= "80|0|40|40" onovercrop= "80|40|40|40" ondowncrop= "80|80|40|40" ondown="set(vlookat_moveforce,-1);" onup="set(vlookat_moveforce,0);" /> <plugin name="down" style="button" x="+80" crop="120|0|40|40" onovercrop="120|40|40|40" ondowncrop="120|80|40|40" ondown="set(vlookat_moveforce,+1);" onup="set(vlookat_moveforce,0);" /> <plugin name="openfs" style="button" x="+120" crop="280|0|40|40" onovercrop="280|40|40|40" ondowncrop="280|80|40|40" onhover="showtext(Fullscreen, buttonstyle);" onclick="set(fullscreen,true);" visible="true" /> <plugin name="closefs" style="button" x="+120" crop="320|0|40|40" onovercrop="320|40|40|40" ondowncrop="320|80|40|40" onhover="showtext(Exit Fullscreen,buttonstyle);" onclick="set(fullscreen,false);" visible="false" />
きちんと整列されました
コントローラーの並び順を変更したい
x=”"の数字を調整すれば並び順は変更可能。
+-を左から右に移動
<plugin name="in" style="button" x="+120" crop="160|0|40|40" onovercrop="160|40|40|40" ondowncrop="160|80|40|40" ondown="set(fov_moveforce,-1);" onup="set(fov_moveforce,0);" /> <plugin name="out" style="button" x="+80" crop="200|0|40|40" onovercrop="200|40|40|40" ondowncrop="200|80|40|40" ondown="set(fov_moveforce,+1);" onup="set(fov_moveforce,0);" /> <plugin name="left" style="button" x="-120" crop= "0|0|40|40" onovercrop= "0|40|40|40" ondowncrop= "0|80|40|40" ondown="set(hlookat_moveforce,-1);" onup="set(hlookat_moveforce,0);" /> <plugin name="right" style="button" x="-80" crop= "40|0|40|40" onovercrop= "40|40|40|40" ondowncrop= "40|80|40|40" ondown="set(hlookat_moveforce,+1);" onup="set(hlookat_moveforce,0);" /> <plugin name="up" style="button" x="-40" crop= "80|0|40|40" onovercrop= "80|40|40|40" ondowncrop= "80|80|40|40" ondown="set(vlookat_moveforce,-1);" onup="set(vlookat_moveforce,0);" /> <plugin name="down" style="button" x="0" crop="120|0|40|40" onovercrop="120|40|40|40" ondowncrop="120|80|40|40" ondown="set(vlookat_moveforce,+1);" onup="set(vlookat_moveforce,0);" /> <plugin name="openfs" style="button" x="+40" crop="280|0|40|40" onovercrop="280|40|40|40" ondowncrop="280|80|40|40" onhover="showtext(Fullscreen, buttonstyle);" onclick="set(fullscreen,true);" visible="true" /> <plugin name="closefs" style="button" x="+40" crop="320|0|40|40" onovercrop="320|40|40|40" ondowncrop="320|80|40|40" onhover="showtext(Exit Fullscreen,buttonstyle);" onclick="set(fullscreen,false);" visible="false" />